-
Notifications
You must be signed in to change notification settings - Fork 66
Update the helm chart to be more robust. #1607
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
Testing final behavior of chart before submitting for review. |
Signed-off-by: Jeff Hagadorn <[email protected]>
|
Final tests and updates have been run. Chart is ready for review. Some notes:
|
|
Nice improvements — making the Helm chart more robust is definitely a great step forward 👏 I’ve been working quite intensively on my own variant of the chart to simplify handling and configuration. It might make sense to combine efforts here, extend the chart together, and maybe even package and publish it to a Helm repo for easier use and updates. What do you think about aligning on that? |
|
Hi @dahui , thank you for your work. I'll start looking into this PR now. |
|
@niklasfrick it would be great, actually. @dahui any chance you can add @niklasfrick as a contributor to your fork? so he can also rebase / push his changes on top of yours to this branch? then I can review both at once. |
I would prefer to handle these issues separately, as I have fully tested the current code and have determined it as functional. Since I forked the code in order to submit this PR, I have no way of running proper functional tests to validate any changes that might be made to the code base, nor do I really have the cycles to test them manually. Since I opened this PR and it is under my name, I would feel I need to take ownership of any changes it is associated with. |
Major Helm Chart Enhancement: External etcd Support and Production Features
Overview
This pull request significantly enhances the Omni Helm chart with production-ready features while maintaining full backwards compatibility with existing deployments. The chart now supports both embedded and external etcd configurations, comprehensive ingress management, and advanced service configuration options.
🚨 Breaking Changes
None - This release maintains full backwards compatibility. Existing deployments will continue to work without any changes.
✨ Major Features Added
1. External etcd Support
etcd.external: trueenables external etcd cluster usage2. Intelligent Resource Management
lookupfunction to detect existing resources3. Comprehensive Ingress Templates
4. Enhanced Service Configuration
externalTrafficPolicyconfiguration for load balancing5. Production-Ready Features
🔧 Technical Implementation
Resource Selection Logic
WireGuard Address Resolution
wireguard.namespace.svc.cluster.localexternalTrafficPolicy: LocalExternal etcd Configuration Examples
Basic External etcd:
With Secret-based Authentication:
With TLS from Secrets:
📋 Files Modified
New Templates
templates/statefulset.yaml- StatefulSet for embedded etcd deploymentstemplates/ingress.yaml- Comprehensive ingress configurationstemplates/poddisruptionbudget.yaml- Pod disruption budget supportEnhanced Templates
templates/deployment.yaml- External etcd support with conditional renderingtemplates/service.yaml- Per-service annotations and WireGuard configurationtemplates/_helpers.tpl- Updated helper functionsConfiguration
values.yaml- Extensive new configuration optionsREADME.md- Comprehensive documentation update🔄 Migration Path
Existing Users
helm upgrademaintains current configurationNew Users
etcd.external: truefor horizontal scalingMigration Support
🧪 Testing Recommendations
Backwards Compatibility Testing
--reuse-valuesNew Feature Testing
📚 Documentation
The README has been completely rewritten with:
Migration Documentation
Configuration Examples
🎯 Benefits
For Existing Users
For New Users
🔒 Security Considerations
This enhancement transforms the Omni Helm chart from a basic deployment tool into a production-ready, enterprise-grade solution while maintaining complete backwards compatibility for existing users.